<?php 
/**
 *  Por Federico Pisarello - SisDev Software (c) 2013 - Buenos Aires, Argentina.
 * 	fpisarello@sisdevsoft.com
 */

require("includes/funciones.inc.php");

session_start();
if(!isset($_SESSION['nombreUsuario']))
	exit();

function searchABMInsumos()
{
	require("includes/constants.php");
	require("includes/datatables_db/Datatables.php");
	
	$datatables = new Datatables();
	
	$datatables
			->select('idInsumo, descripcion')
			->add_column('edit', '<img src="images/details_open.png">')
			->from('insumos')
			->where("estado <> '".$stateErase."'");

	return $datatables->generate();	
}

function addOrEdit()
{
	require("includes/constants.php");

	$DB = NewADOConnection('mysqlt');
	$DB->Connect();
	$DB->Execute("SET NAMES utf8;");
	//$DB->debug=true;
	
	$DB->StartTrans(); // start transaction
	
	if(!isset($_REQUEST["idInsumo"])){
			
		$strSQL = "INSERT INTO insumos ( ";
		$strSQL .= "	descripcion, ";
		$strSQL .= "	estado ";
		$strSQL .= "	) VALUES ( ";
		$strSQL .= "	'".mb_strtoupper($_REQUEST["descripcion"], "UTF-8")."', ";
		$strSQL .= "	'".$stateAdd."' ";
		$strSQL .= "	)";
		
		$DB->Execute($strSQL);
		
		$insert_ID = $DB->Insert_ID();
		
		for ($i = 1; $i <= 4; $i++) {
			if($_REQUEST["proveedor" . $i]!=$NULL_VALUE) {
				$strSQL = "INSERT INTO insumos_proveedores ( ";
				$strSQL .= "	idInsumo, ";
				$strSQL .= "	idProveedor, ";
				$strSQL .= "	volumenMinimo, ";
				$strSQL .= "	unidadMedida, ";
				$strSQL .= "	tiempoDemora ";
				$strSQL .= "	) VALUES ( ";
				$strSQL .= "	'".$insert_ID."', ";
				$strSQL .= "	'".$_REQUEST["proveedor" . $i]."', ";
				$strSQL .= "	'".$_REQUEST["volumenMinimo" . $i]."', ";
				$strSQL .= "	'".$_REQUEST["unidadMedida" . $i]."', ";
				$strSQL .= "	'".$_REQUEST["tiempoDemora" . $i]."' ";
				$strSQL .= "	)";
				
				$DB->Execute($strSQL);
			}
		}
	}
	else{
		$strSQL = "UPDATE insumos SET ";
		$strSQL .= "	descripcion = '".mb_strtoupper($_REQUEST["descripcion"], "UTF-8")."', ";
		$strSQL .= "	estado = '".$stateModify."'";
		$strSQL .= " WHERE idInsumo = ". $_REQUEST["idInsumo"];
		
		$DB->Execute($strSQL);
		
		$DB->Execute("DELETE FROM insumos_proveedores WHERE idInsumo = ". $_REQUEST["idInsumo"]);
		for ($i = 1; $i <= 4; $i++) {
			if($_REQUEST["proveedor" . $i]!=$NULL_VALUE) {
				$strSQL = "INSERT INTO insumos_proveedores ( ";
				$strSQL .= "	idInsumo, ";
				$strSQL .= "	idProveedor, ";
				$strSQL .= "	volumenMinimo, ";
				$strSQL .= "	unidadMedida, ";
				$strSQL .= "	tiempoDemora ";
				$strSQL .= "	) VALUES ( ";
				$strSQL .= "	'".$_REQUEST["idInsumo"]."', ";
				$strSQL .= "	'".$_REQUEST["proveedor" . $i]."', ";
				$strSQL .= "	'".$_REQUEST["volumenMinimo" . $i]."', ";
				$strSQL .= "	'".$_REQUEST["unidadMedida" . $i]."', ";
				$strSQL .= "	'".$_REQUEST["tiempoDemora" . $i]."' ";
				$strSQL .= "	)";
					
				$DB->Execute($strSQL);
			}
		}
	}
	
	if (!$DB->CompleteTrans())
	{
		$arrJSON->status = "ERROR";
		$arrJSON->msg = "Error al Grabar el Insumo";
	}
	else
	{
		$arrJSON->status = "OK";
		$arrJSON->msg = "El Insumo fue Guardado con Exito";
	}	
	return json_encode($arrJSON);
}

function del()
{
	require("includes/constants.php");
	
	$DB = NewADOConnection('mysqlt');
	$DB->Connect();
	$DB->Execute("SET NAMES utf8;");
	//$DB->debug=true;
	
	$DB->StartTrans(); // start transaction
	$DB->Execute("UPDATE insumos SET estado = '$stateErase' WHERE idInsumo = " . $_REQUEST["idInsumo"]); // execute query

	if (!$DB->CompleteTrans())
	{
		$arrJSON->status = "ERROR";
		$arrJSON->msg = "Error al Eliminar el Insumo";
	}
	else
	{
		$arrJSON->status = "OK";
		$arrJSON->msg = "El Insumo se Elimino Correctamente";
	}	
	return json_encode($arrJSON);
}

function editInsumo()
{
	require("includes/constants.php");
	
	$DB = NewADOConnection('mysqlt');
	$DB->Connect();
	$DB->Execute("SET NAMES utf8;");
	//$DB->debug=true;
	
	$rsInsumo = $DB->Execute("SELECT * FROM insumos WHERE estado <> '$stateErase' AND idInsumo = " . $_REQUEST["idInsumo"]); // execute query
						
	if(!$rsInsumo->EOF){
		$joInsumo->data['descripcion'] = $rsInsumo->fields("descripcion");
		
		$i=1;
		$rsInsumoProveedores = $DB->Execute("SELECT ip.*, p.razonSocial FROM insumos_proveedores ip
												INNER JOIN proveedores p ON p.idProveedor = ip.idProveedor
												WHERE idInsumo = " . $rsInsumo->fields("idInsumo")); // execute query
		
		while(!$rsInsumoProveedores->EOF){
			
			$joInsumo->data['idProveedor'.$i] = $rsInsumoProveedores->fields("idProveedor");
			$joInsumo->data['razonSocial'.$i] = $rsInsumoProveedores->fields("razonSocial");
			$joInsumo->data['volumenMinimo'.$i] = $rsInsumoProveedores->fields("volumenMinimo");
			$joInsumo->data['unidadMedida'.$i] = $rsInsumoProveedores->fields("unidadMedida");
			$joInsumo->data['tiempoDemora'.$i++] = $rsInsumoProveedores->fields("tiempoDemora");
			
			$rsInsumoProveedores->MoveNext();
		}
		
		return json_encode($joInsumo->data);
	}
	else
		return json_encode(array());
}

function getProveedores()
{
	require("includes/constants.php");
	
	$DB = NewADOConnection('mysqlt');
	$DB->Connect();
	$DB->Execute("SET NAMES utf8;");
	//$DB->debug=true;
	
	$rsProveedores = $DB->Execute("SELECT * FROM proveedores WHERE estado <> '$stateErase' AND razonSocial LIKE '%".$_REQUEST['term']."%'");
	
	if($rsProveedores->EOF)
		return json_encode(array());
	
	$i=0;
	while(!$rsProveedores->EOF){
		$arrProveedor->data[$i]['id'] = $rsProveedores->fields('idProveedor');
		$arrProveedor->data[$i++]['value'] = $rsProveedores->fields('razonSocial');
		$rsProveedores->MoveNext();
	}
	
	return json_encode($arrProveedor->data);
}

function searchInsumosDetalle()
{
	require("includes/constants.php");
	
	$DB = NewADOConnection('mysqlt');
	$DB->Connect();
	$DB->Execute("SET NAMES utf8;");
	//$DB->debug=true;
	
	$strSQL = "SELECT ip.*, um.descripcion AS descUnidadMedida, p.razonSocial FROM insumos_proveedores ip
					INNER JOIN proveedores p ON p.idProveedor = ip.idProveedor
					INNER JOIN unidad_medida um ON um.idUnidadMedida = ip.unidadMedida
					WHERE idInsumo = " . $_REQUEST["idInsumo"];
	
	$rsInsumoDetalle = $DB->Execute($strSQL);
	
	$strOutput = "<tr><td>Proveedor</td><td>Volumen Minimo</td><td>Unidad de Medida</td><td>Tiempo de Demora</td></tr>";
	
	while(!$rsInsumoDetalle->EOF){
		$strOutput .= "<tr><td>".$rsInsumoDetalle->fields("razonSocial")."</td><td>".$rsInsumoDetalle->fields("volumenMinimo")."</td><td>".$rsInsumoDetalle->fields("descUnidadMedida")."</td><td>".$rsInsumoDetalle->fields("tiempoDemora")."</td></tr>";
		$rsInsumoDetalle->MoveNext();
	}
	return $strOutput;
}

function getUnidadesMedida()
{
	require("includes/constants.php");
	
	$DB = NewADOConnection('mysqlt');
	$DB->Connect();
	$DB->Execute("SET NAMES utf8;");
	//$DB->debug=true;
	
	$rsUnidadMedida = $DB->Execute("SELECT * FROM unidad_medida WHERE estado <> '$stateErase' AND tipo = '$unidadMedidaPrincipal'");
	
	if($rsUnidadMedida->EOF)
		return json_encode(array());
	
	$i=0;
	while(!$rsUnidadMedida->EOF){
		$arrUnidadMedida->data[$i]['idUnidadMedida'] = $rsUnidadMedida->fields('idUnidadMedida');
		$arrUnidadMedida->data[$i++]['descripcion'] = $rsUnidadMedida->fields('descripcion');
		$rsUnidadMedida->MoveNext();
	}
	
	return json_encode($arrUnidadMedida->data);
}

switch($_REQUEST['accion'])
{
	case "EDIT":
		echo editInsumo();
		break;
	case "DELETE":
		echo del();
		break;
	case "search":
		echo searchABMInsumos();
		break;
	case "addOrEdit":
		echo addOrEdit();
		break;
	case "getProveedores":
		echo getProveedores();
		break;
	case "getUnidadesMedida":
		echo getUnidadesMedida();
		break;
	case "searchInsumosDetalle":
		echo searchInsumosDetalle();
		break;		
}
?>
